# ==========================
# CHARGEMENT DES BIBLIOTHÈQUES NÉCESSAIRES
# ==========================


# Chargement des bibliothèques
library(dplyr)
## 
## Attachement du package : 'dplyr'
## Les objets suivants sont masqués depuis 'package:stats':
## 
##     filter, lag
## Les objets suivants sont masqués depuis 'package:base':
## 
##     intersect, setdiff, setequal, union
library(plotly)
## Warning: le package 'plotly' a été compilé avec la version R 4.4.2
## Le chargement a nécessité le package : ggplot2
## Warning: le package 'ggplot2' a été compilé avec la version R 4.4.2
## 
## Attachement du package : 'plotly'
## L'objet suivant est masqué depuis 'package:ggplot2':
## 
##     last_plot
## L'objet suivant est masqué depuis 'package:stats':
## 
##     filter
## L'objet suivant est masqué depuis 'package:graphics':
## 
##     layout
library(RColorBrewer)
library(htmlwidgets)
## Warning: le package 'htmlwidgets' a été compilé avec la version R 4.4.2
library(readr)

# ==========================
# CHARGEMENT DES DONNÉES
# ==========================
cat("\n=== CHARGEMENT DES DONNÉES ===\n")
## 
## === CHARGEMENT DES DONNÉES ===
data_path <- "C:/Users/digor/OneDrive/Documents/Projet_SCI1402_analyse_GTD/data/processed/gtd_clean.csv"

# Vérification du fichier
if (file.exists(data_path)) {
  gtd_data <- read_csv(data_path, show_col_types = FALSE)
  cat("Données chargées avec succès !\n")
} else {
  stop("ERREUR : Le fichier spécifié est introuvable. Vérifiez le chemin !")
}
## Warning: One or more parsing issues, call `problems()` on your data frame for details,
## e.g.:
##   dat <- vroom(...)
##   problems(dat)
## Données chargées avec succès !
# ==========================
# PRÉPARATION DES DONNÉES
# ==========================
cat("\n=== PRÉPARATION DES DONNÉES ===\n")
## 
## === PRÉPARATION DES DONNÉES ===
# Préparation des données pour les types d'attaques
attack_data <- gtd_data %>%
  count(attacktype1_txt) %>%
  arrange(desc(n)) %>%
  mutate(attacktype1_txt = ifelse(row_number() > 5, "Other", attacktype1_txt)) %>%
  group_by(attacktype1_txt) %>%
  summarise(n = sum(n))

# Préparation des données pour les types d'armes
weapon_data <- gtd_data %>%
  count(weaptype1_txt) %>%
  arrange(desc(n)) %>%
  mutate(weaptype1_txt = ifelse(row_number() > 5, "Other", weaptype1_txt)) %>%
  group_by(weaptype1_txt) %>%
  summarise(n = sum(n))

# ==========================
# CRÉATION DES CAMEMBERTS INTERACTIFS
# ==========================

# Camembert pour les types d'attaques
attack_pie <- plot_ly(
  attack_data,
  labels = ~attacktype1_txt,
  values = ~n,
  type = 'pie',
  textinfo = 'label+percent',
  hoverinfo = 'label+value+percent',
  marker = list(colors = RColorBrewer::brewer.pal(8, "Set2"))
) %>%
  layout(
    title = list(text = "Interactive Pie Chart - Terrorist Attacks by Type"),
    showlegend = TRUE
  )

# Camembert pour les types d'armes
weapon_pie <- plot_ly(
  weapon_data,
  labels = ~weaptype1_txt,
  values = ~n,
  type = 'pie',
  textinfo = 'label+percent',
  hoverinfo = 'label+value+percent',
  marker = list(colors = RColorBrewer::brewer.pal(8, "Set3"))
) %>%
  layout(
    title = list(text = "Interactive Pie Chart - Terrorist Weapons by Type"),
    showlegend = TRUE
  )

# ==========================
# AFFICHAGE ET SAUVEGARDE DES GRAPHIQUES
# ==========================
cat("\n=== AFFICHAGE DES GRAPHIQUES ===\n")
## 
## === AFFICHAGE DES GRAPHIQUES ===
# Forcer l'affichage dans un navigateur
options(viewer = NULL)

# Affichage
attack_pie
weapon_pie
# Sauvegarder les graphiques en HTML
saveWidget(attack_pie, "attack_pie.html", selfcontained = TRUE)
saveWidget(weapon_pie, "weapon_pie.html", selfcontained = TRUE)

# Confirmation
cat("Les graphiques interactifs ont été générés avec succès et sauvegardés sous 'attack_pie.html' et 'weapon_pie.html'.\n")
## Les graphiques interactifs ont été générés avec succès et sauvegardés sous 'attack_pie.html' et 'weapon_pie.html'.